package com.huawei.cloud.phone.management.application.user;

import com.huawei.cloud.phone.management.application.user.dto.LoginInfoDTO;
import com.huawei.cloud.phone.management.application.user.dto.UserDTO;
import org.springframework.lang.NonNull;

public interface UserService {

    /**
     * 用户注册，注册成功后自动登录
     *
     * @param user 用户信息
     * @return 登录信息
     */
    LoginInfoDTO register(@NonNull UserDTO user);

    /**
     * 用户登录
     *
     * @param user 用户信息
     * @return 登录信息
     */
    LoginInfoDTO login(@NonNull UserDTO user);

    /**
     * 退出登录
     *
     * @param sessionId 用户SessionID
     */
    void logout(@NonNull String sessionId);

    /**
     * 强制用户退出登录，同时会清除用户的连接手机信息
     *
     * @param username 用户名
     */
    void forceLogout(@NonNull String username);
}
